package dominio;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import dto.ReferenciaRemitoProveedorTO;
import dto.RemitoProveedorTO;

public class RemitoProveedor {
	private Integer id;
	private Date fecha;
	private Proveedor proveedor;
	private List<ReferenciaRemitoProveedor> referencias;

	public RemitoProveedor() {
		referencias = new ArrayList<ReferenciaRemitoProveedor>();
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public Proveedor getProveedor() {
		return proveedor;
	}

	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}

	public List<ReferenciaRemitoProveedor> getReferencias() {
		return referencias;
	}

	public void agregarReferencia(ReferenciaRemitoProveedor referencia) {
		referencias.add(referencia);
	}

	public RemitoProveedorTO getDTO() {
		RemitoProveedorTO dto = new RemitoProveedorTO();
		dto.setId(id);
		dto.setFecha(fecha);
		if (proveedor != null)
			dto.setProveedor(proveedor.getDTO());
		for (ReferenciaRemitoProveedor ref : referencias)
			dto.agregarReferencia(ref.getDTO());
		return dto;
	}

	public static RemitoProveedor fromDTO(RemitoProveedorTO dto) {
		if (dto == null)
			return null;
		RemitoProveedor rp = new RemitoProveedor();
		rp.setId(dto.getId());
		rp.setFecha(dto.getFecha());
		rp.setProveedor(Proveedor.fromDTO(dto.getProveedor()));
		for (ReferenciaRemitoProveedorTO ref : dto.getReferencias())
			rp.agregarReferencia(ReferenciaRemitoProveedor.fromDTO(ref));
		return rp;
	}
}